package com.lrkj.payfee.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.lrkj.common.annotation.Excel;
import com.lrkj.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotBlank;

/**
 * 余额充值对象 tb_balance_refill
 *
 * @author yajun_ren
 * @date 2022-07-25
 */
@Data
public class BalanceRefill extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** 余额单号 */
    @Excel(name = "余额单号")
    private String balanceOdd;

    /** 小区id */
    @Excel(name = "小区id")
    private String communityId;

    /** 房屋id */
    @Excel(name = "房屋id")
    private String roomId;

    /** 业主id */
    @Excel(name = "业主id")
    private String customId;

    /** 收费项目id */
    @Excel(name = "收费项目id")
    private String chargeId;

    /** 充值金额 */
    @Excel(name = "充值金额")
    private BigDecimal rechargeMoney;

    /** 减免金额 */
    @Excel(name = "减免金额")
    private BigDecimal derateMoney;

    /** 实收金额 */
    @Excel(name = "实收金额")
    private BigDecimal receiptsMoney;

    /** 收款方式 */
    @Excel(name = "收款方式")
    private String payeeType;

    /** 收款人 */
    @Excel(name = "收款人")
    private String payeePerson;

    /** 收款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payeeTime;

    /** 所属机构 */
    @Excel(name = "所属机构")
    private String deptId;

    /** 祖级列表 */
    @Excel(name = "祖级列表")
    private String ancestors;

    /** 状态 */
    @Excel(name = "状态")
    private String status;


    //所属小区
    private String communityName;

    //所属房屋
    private String roomName;

    //所属业主
    private String customName;

    //所属项目
    private String chargeName;

    private String startDate;

    private String endDate;



    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("balanceOdd", getBalanceOdd())
            .append("communityId", getCommunityId())
            .append("roomId", getRoomId())
            .append("customId", getCustomId())
            .append("chargeId", getChargeId())
            .append("rechargeMoney", getRechargeMoney())
            .append("derateMoney", getDerateMoney())
            .append("payeeType", getPayeeType())
            .append("payeePerson", getPayeePerson())
            .append("payeeTime", getPayeeTime())
            .append("deptId", getDeptId())
            .append("ancestors", getAncestors())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
